home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 July
/
EnigmA AMIGA RUN 09 (1996)(G.R. Edizioni)(IT)[!][issue 1996-07 & 08][EARSAN CD VIII].iso
/
earcd
/
gcc
/
ixemulbn.rdm
< prev
next >
Wrap
Text File
|
1996-06-17
|
7KB
|
175 lines
Short: IXemul 43.1 - various utilities
Author: various
Uploader: fnf@ninemoons.com
Type: dev/gcc
This is ixemul.library release 43.1, a shared library that makes it possible
to compile and run most Unix programs under AmigaOS with almost no changes.
IXemul is part of the ADE (Amiga Developer's Environment), a community
effort to produce a complete development environment that is stable,
available in source, and completely self-hosting. See the ADE readme file
at ftp://ftp.ninemoons.com/pub/ade/README for more details about ADE.
IXemul includes Jeff Shepherd's networking code. If ixnet.library
(included) is installed then ixemul.library will use the networking
functions from the ixnet.library, instead of the default dummy
implementation. Ixnet.library works with AS225 and with AmiTCP. It
supports both clients and daemons. A program that uses networking functions
is completely shielded from the AS225 and AmiTCP differences by
ixnet.library, which will take care of all the details for you. That means
that there is no longer any need to provide two different binaries, one for
AS225 and one for AmiTCP. Furthermore, it is relatively easy to add support
for other network packages.
The following are the changes made since the previous release:
Ixemul no longer uses async writes. All I/O is now synchronous. This
allowed me to remove several Disable()/Enable() pairs, and actually
made ixemul faster. Apparently the overhead in handling async I/O was
substantial.
Applied patches from Jeff Shepherd fixing various problems in the
ixnet.library. Among them improved AS225 passwd handling.
Moved the resolver functions out of ixnet.library into libc.a. All
programs that used these functions will have to be recompiled. Very
few programs use these functions, and since they are really higher
level functions and do not belong in a low level library like ixnet,
I've moved them.
Also moved tty database functions (getttyent() and friends, ttyname()
and ttyslot()) to libc.a, for much the same reason.
Added the NetBSD DB sources to libc.a and removed the hacked versions
from ixnet.
Replaced various headers with the NetBSD versions. Important for
certain socket-related ioctl defines that were incorrect in the old
headers.
Added ptrace(GETA4, pid, 0, 0) to obtain the value of the a4 register
if this executable was compiled with -fbaserel or -resident. Needed
by gdb to find out where the data section is.
Added ptrace(GETEXENAME, pid, 0, 0) to obtain the name of the current
executable. Useful in scripts that start with '#!/bin/sh' or
something similar. 'argv[0]' as seen by sh is the name of the script,
but if you want to get the pathname of 'sh' itself, you can use this
ptrace call.
Added setlocale() and ctermid() to libc.a.
It is now possible to unlink() a file that is owned by another
process (just like Unix). Gcc uses this to remove temporary files
that are actually owned by cpp (or as). Of course, on the Amiga this
is implemented as a delayed delete, i.e. a flag is set in the 'struct
file' to tell ixemul to delete the file when it is closed by the
owner process.
Added support for a root ('/') directory. This will only work for
programs that use ixemul.library. So if you start pdksh, 'cd' to the
root (cd /) and use the AmigaDOS command 'list' to view this
directory, then you won't get what you expect. If you use the Unix ls
command however, then you will see all the volumes that you have as
top level directories.
Removed an old hack in __wait_packet.c that interfered with Ctrl-F
handling.
Fixed a bug in fnctl(), F_SETFL.
Added AFS, AFSFloppy and PFS support. Many thanks to the AFS author,
Michiel Pelt, who provided me with the necessary technical
information, and to Kriton Kyrimis for giving some very useful
suggestions.
Added MultiUserFileSystem support, contributed by Mike Krings. Thanks
Mike!
Added new function ix_warning: similar to ix_panic, but allows the
user to choose between "Continue" and "Abort". This to work around a
case like:
for (;;) crypt();
where one couldn't break out of the program because the requester
kept popping up.
Fixed -mstackcheck support and fixed buggy baserel-stackextend
support.
The call socket(AF_UNIX, SOCK_STREAM, 0) no longer crashes if
ixnet.library is not installed.
Reorganized Makefiles. I've removed the option to compile each source
separately, instead they are always catenated together. Also, 'make'
no longer starts itself two more times in order to make the
library. I've used GNU make wizardry to let 'make' figure out all the
targets by itself.
Sigsetjmp and siglongjmp were broken. Fixed.
Replaced the old man pages with the new NetBSD manual pages in the
original troff form.
Replaced the nice() stub in ix_stub with nice.c from NetBSD.
Removed a Delay(100) that was called just before a vfork()ed program
finally terminated.
Made h_errno a global variable like errno.
At several places in the library the errno variable was reset to 0.
However, the library should (almost) never set errno to 0. This
caused problems with the 'ping' program, where recvfrom set errno to
4, but the library changed it back to 0 before 'ping' got to see it.
Now sets st_uid and st_gid from a 'stat' structure to the effective
UID and GID. Some programs tested these fields and they failed when
using networking support. These fields used to be 0.
Reread the global environment variables only when 1) a new program is
started, and 2) the ENV: directory has been changed (i.e., a new
setting was added to ENV:). ENV: used to be read every time a program
was started, whether it was needed or not.
Given the shell script s.sh in /ram/t:
#!/bin/sh
/bin/echo $0
'sh /ram/t/s.sh' produced '/ram/t/s.sh', while typing '/ram/t/s.sh'
from within the pdksh shell produced 'Ram:t/s.sh'. Fixed.
Removed a dubious CurrentDir() to a *file* instead of a directory.
While this is apparently supported for the standard AmigaOS
filesystems, not all third-party filesystems supported this.
When you try to use a >68020 ixemul.library on a 68000 Amiga, you now
get a decent message instead of a crash.
The net ixemul library distribution consists of several archives:
ixemul-bin.lha Utils for gnu/bin, like ixtrace and ixconfig
ixemul-sdk.lha Files needed to build applications that use
ixemul.library.
ixemul-doc.lha Various documentation, such as this file
ixemul-src.lha Complete source code for ixemul library
ixemul-tz.lha Pieces for doing TZ (timezone) management
ixemul-CCCF.lha Specific flavors of the library, where 'CCC'
is one of 000, 020, 030, or 040, for 68000, 68020,
68030, and 68040 respectively, and 'F' is either
'f', 's', or 't' for FPU support or soft floating
point or a "trace" version (also soft float)
respectively.
For further information consult the NEWS, INSTALL, README and TODO files in
the documentation archive.
-Fred Fish (fnf@ninemoons.com)